Bash script tutorial

$ who am i

当前用户,当前命令行编号,当前时间

$ pwd

present working directory

$ cal 7 2016

查看日历

$ date '+DATE:%m-%y%nTIME:%H:%M:%S'

自定义时间样式

$ ls -a
$ ls -l

显示隐藏文件,显示文件具体信息

File&directory operation

$ touch filename

创建一个空文本文件

$ rm filename

删除文件

$ mkdir dirname

创建一个空目录

$ rmdir dirname

删除一个目录

$ cp filename1 path/filename2

复制文件

$ mv filename filename2

重命名文件

$ grep keyword filename

在文件中查找关键字

$ diff filename1 filename2

对比两个文件中不同的部分

$ cat filename

一次显示整个文件

$ cat > filename

创建一个空文件并进入编辑模式
ctrl+d可以结束编辑模式并保存

$ cat < filename

读取这个文件并返回这个文件的字符串

$ cat file1 file2 > file

合并文件

$ ls > filename

把某个命令的返回值存入文件,如果不存在会自动创建

$ ls >> filename

如果用>反复对一个文件保存,会覆盖之前的内容,要添加内容需要用>>

$ chmod o+w filename

文件权限修改,u, g, o表示user,group,other,r, w, x表示读写执行权限

$ chmod 754 filename

4 - read
2 - write
1 - execute
0 - no permission
这个命令表示对user, group, other同时修改权限,7,5,4代表三种用户的权限累加值,所以7就是rwx,5就是r-x,4就是r--

Compress & extract files

$ tar cvf tarFilename.tar compressFilename1 compressFilename2

c表示是create,建立新的压缩包,v表示结果会在控制台输出,f代表文件选项

$ tar xvf tarFilename.tar

解压缩

Verify files using checksum

$ sha1sum filename

返回这个文件的哈希值,通过sha-1算法获得

$ sha1sum filename | grep someHashNumbers

对比这个文件的哈希值与某个哈希值,如果匹配则会返回红色文本的哈希值

Users

$ sudo useradd username
$ sudo passwd username

创建新用户,创建后给用户设置密码,Linux会自动建立一个和用户名同名的组,并添加到这个组

$ sudo groupadd goupName
$ sudo usermod -a -G goupName

添加用户组
-a表示添加或者移动到用户组,-G表示添加到某个组但是不退出本身已经存在的组,-g表示退出当前组,加入现在的组

$ cd ../..
$ cd etc
$ ls -la

用户密码存在etc目录下的passwd文件中,真实的密码存在shadow文件里,当然是被哈希加密的

SSH & SFTP

$ ssh username@ipAdress

以某个用户名登录某个服务器

$ nano /etc/ssh/sshd_config

修改ssh配置,PermitRootLogin without-password即可无需密码登录,真正的秘钥只存在你当前用来登录的这台电脑

$ sftp username@ipAdress

使用安全的ftp登录

$ put path/filename

上传文件

$ put -r path/path2

上传某个路径下的所有文件,需要在远程端建立同名文件夹

$ get filename path/filename

下载单个文件

$ get -r folderName path

下载一个文件夹

Shell script

#!/bin/bash

指定解释器,#也用作单行注释

$ bash shellScriptName

执行脚本

if [$1 = hotdog]; then
    echo "You typed hotdog"
else
    echo "You did NOT type hotdog"
    echo "You typed " $1
fi

分支

for x in dog elephant fish; do
    echo $x
done

循环

Process

$ ps

查看所有非系统进程

$ command &

让某个命令开启的进程在背后运行,不占用当前命令行
它会成为一个job

$ jobs
$ fg %jobNumber

job提到前台以便控制
Ctrl+c停止程序,Ctrl+d冻结程序,Ctrl+z把已经在运行的进程放到后台

$ kill processID

停止某个进程

$ kill -STOP processID
$ kill -CONT processID

冻结/解冻进程

$ nohup command &

注意到直接用&放在后台的程序,当命令行关闭的时候,会被一同关闭
如果想要变成守护进程的造型,就要用nohup

Some other command

$ passwd

修改密码

$ info ls

显示某个命令的帮助


xbgxwh
31 声望0 粉丝

活泼的前端魔法师


« 上一篇
Boostrap Tutorial
下一篇 »
Vim Tutorial

引用和评论

0 条评论